<?php
/*
	+-----------------------------------------------------------------------------------------+
	| Projeto MonitoraSUS                                                                     |
	+-----------------------------------------------------------------------------------------+
	| Copyright (c) 2005-2008 Secretaria Municipal de Saúde de Belo Horizonte / Prodabel      |
	|                                                                                         |
	| Analista Responsável: Hugo Nathaniel Rodrigues <hugonr@gmail.com>, <hugo@pbh.gov.br> |  
	|                       Consultor - GSFS - Prodabel / SMSA                                |
	| Departamento Responsável - SMSA: GPLD - Paulinho <pauloces@pbh.gov.br>                  |
	| Departamento Responsável - Prodabel: GSFS - Ricardo Monteiro <monteiro@pbh.gov.br>      |
	| Analista de Informaçao: Marcone <marcone.costa@pbh.gov.br>                              |
	+-----------------------------------------------------------------------------------------+
*/

/**
* classe IndicadorClass
* Classe para Trabalhar com indicadores do plano municipal
*
* @author Hugo Rodrigues <hugonr@gmail.com>, <hugo@pbh.com.br>
* @version $Id: class.Indicador.php,v 1.0 07/08/2008 11:55:00 Hugo $
*
* @package MonitoraSUS
*/
class IndicadorClassD{

	/**
	* contem o código do indicador
	* @var int
	* @access public
	*/
	var $numindicador;

	/**
	* Construtor
	* @access public
	*/
	function IndicadorClassD(){
		$this->numindicador = "";
	}

	/**
	* Excluir Indicador
	* @param int $num_eixo
	* @param int $num_objetivo
	* @param int $num_diretriz
	* @param int $num_objetivoespecifico
	* @param int $num_meta
	* @param int $num_ind
	* @param string $where
	* @param array $nivelacesso
	* @return string $msg
	* @access	public
	*/
	function excluiindicador($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_ind, $where, $nivelacesso, $conexao){
		if ($nivelacesso[8][3] == "S"){ 
			$sql = "update monitorasus.indicadores set situacao='I' where $where and num_indicador=$num_ind";
			if (pg_query( $sql)){
				$sql = "update monitorasus.indicadores_manuais set situacao='I' where $where and num_indicador = $num_ind";
				if (pg_query( $sql)){
					$msg = "Exclusão Realizada com sucesso!";
				} else {
					$msg = "Erro ao realizar a exclusão!";
				}
			} else {
				$msg = "Erro ao realizar a exclusão!";
			}
		} else {
			$msg = "Você não tem permissão para esta ação!";
		}
		return $msg;
	}




	/**
	* Inserir Indicador
	* @param int $num_eixo
	* @param int $num_objetivo
	* @param int $num_diretriz
	* @param int $num_objetivoespecifico
	* @param int $num_meta
	* @param string $des_indicador
	* @param string $dataini
	* @param string $datafim
	* @param string $datainimostra
	* @param string $datafimmostra
	* @param string $fonte
	* @param string $tabelaperiodoindicador
	* @param string $where
	* @param int $exercicio
	* @return string $msg
	* @access	public
	*/
	function inseririndicador($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $where,  $conexao){
		$des_indicador = $_POST["Des_Indicador"];
		$dataini = $_POST["DataIni"];
		$datafim = $_POST["DataFim"];
		$datainimostra = $_POST["DataIniMostra"];
		$datafimmostra = $_POST["DataFimMostra"];
		$fonte = $_POST["Fonte"];
		$tabelaperiodoindicador = $_POST["TabelaPeriodoIndicador"];
		$acompanhado = $_POST["Acompanhado"];
		$sustentador = $_POST["Sustentador"];
		$milenio = $_POST["Milenio"];
		$bomservico = $_POST["BomServico"];
		$prioritario = $_POST["Prioritario"];
		$prioritariosus = $_POST["PrioritarioSUS"];
		$mostrarnumerador = $_POST["MostrarNumerador"];
		$titulonumerador = $_POST["TituloNumerador"];

		// CategoriaIndicador (tipo de informação) 1=>boolean(com texto indicativo para sim e não) 2=>valor   padrão 2
		// Descritivosim padrão "Valor :"
		// TipoOrigem (de onde vem a informação) 1=>manual 2=>banco de dados   padrão 1
		$sql = "insert into monitorasus.indicadores (des_indicador, situacao, tipoorigem, id_usuario_inclusao, data_inclusao) ";
		$sql .= " values (";
		$sql .= "'" . decodificar($des_indicador) . "', ";
		$sql .= "'A', ";
		$sql .= "1, ";
		$sql .= $_SESSION["fnum_func"] . ", ";
		$sql .= "now()) ";
		if (pg_query($sql)){
			$sql = "select num_indicador as num_ind from monitorasus.indicadores order by num_indicador desc ";
			$resultado = pg_query( $sql);
			$num_ind = pg_fetch_result($resultado,0,"num_ind");
			$sql = "insert into monitorasus.indicadores_manuais (num_indicador, fonte, situacao, categoriaindicador, dataini, datafim, tabelaperiodoindicador, datainimostra, datafimmostra, id_usuario_inclusao, data_inclusao) ";
			$sql .= " values (";
			$sql .= "$num_ind, ";
			$sql .= "'" . decodificar($fonte) . "', ";
			$sql .= "'A', ";
			$sql .= "2, ";
			$sql .= "'$dataini', ";
			$sql .= "'$datafim', ";
			$sql .= "'$tabelaperiodoindicador', ";
			$sql .= "'$datainimostra', ";
			$sql .= "'$datafimmostra', ";
			$sql .= $_SESSION["fnum_func"] . ", ";
			$sql .= "now()) ";
			if (pg_query($sql)){
				$sql = " insert into " . $_SESSION["banco"] . ".indicadores_metas (num_indicador, num_meta) ";
				$sql .= " values (";
				$sql .= "$num_ind, ";
				$sql .= "$num_meta) ";
				pg_query($sql);
				$msg = "Inclusão do Indicador realizada com sucesso!";
				$this->numindicador = $num_ind;
			} else {
				$msg = "Erro ao incluir o Indicador";
				$this->numindicador = "";
			}
		
		} else {
			$msg = "Erro ao incluir o Indicador";
			$this->numindicador = "";
		}
		
		return $msg;
	}

	/**
	* Alterar Indicador
	* @param int $num_eixo
	* @param int $num_objetivo
	* @param int $num_diretriz
	* @param int $num_objetivoespecifico
	* @param int $num_meta
	* @param int $num_ind
	* @param string $des_indicador
	* @param string $dataini
	* @param string $datafim
	* @param string $datainimostra
	* @param string $datafimmostra
	* @param string $fonte
	* @param string $tabelaperiodoindicador
	* @param string $where
	* @param int $exercicio
	* @return string $msg
	* @access	public
	*/
	function alterarindicador($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_ind, $where, $conexao){
		$des_indicador = $_POST["Des_Indicador"];
		$dataini = $_POST["DataIni"];
		$datafim = $_POST["DataFim"];
		$datainimostra = $_POST["DataIniMostra"];
		$datafimmostra = $_POST["DataFimMostra"];
		$fonte = $_POST["Fonte"];
		$tabelaperiodoindicador = $_POST["TabelaPeriodoIndicador"];

		// CategoriaIndicador (tipo de informação) 1=>boolean(com texto indicativo para sim e não) 2=>valor   padrão 2
		// Descritivosim padrão "Valor :"
		// TipoOrigem (de onde vem a informação) 1=>manual 2=>banco de dados   padrão 1
		$sql = " update monitorasus.indicadores set ";
		$sql .= "des_indicador='" . decodificar($des_indicador) . "', ";
		$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
		if (pg_query( $sql)){
			if ($num_meta != "")
			{
				// indicador com meta
				$sql = "update monitorasus.indicadores_manuais set ";
				$sql .= "dataini='$dataini', ";
				$sql .= "datafim='$datafim', ";
				$sql .= "datainimostra='$datainimostra', ";
				$sql .= "datafimmostra='$datafimmostra', ";
				$sql .= "fonte='" . decodificar($fonte) . "', ";
				$sql .= "tabelaperiodoindicador='$tabelaperiodoindicador', ";
				$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
				if (pg_query( $sql)){
					$msg = "Alteração do Indicador realizada com sucesso!";
				} else {
					$msg = "Erro ao alterar o Indicador";
				}
				
			} else {
				// indicador sem meta
				$sql = "select count(*) as quantidade from monitorasus.indicadores_manuais im ";
				$sql .= " where im.num_indicador =$num_ind ";
				$resultado = pg_query($sql);
				$quantidade = pg_fetch_result($resultado,0,"quantidade");
				if ($quantidade > 0)
				{
					$sql = "update monitorasus.indicadores_manuais set ";
					$sql .= "dataini='$dataini', ";
					$sql .= "datafim='$datafim', ";
					$sql .= "datainimostra='$datainimostra', ";
					$sql .= "datafimmostra='$datafimmostra', ";
					$sql .= "fonte='" . decodificar($fonte) . "', ";
					$sql .= "tabelaperiodoindicador='$tabelaperiodoindicador', ";
					$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
				} else {
					$sql = "insert into monitorasus.indicadores_manuais ";
					$sql .= " (num_indicador, fonte, situacao, categoriaindicador, dataini, datafim, datainimostra, datafimmostra, tabelaperiodoindicador, id_usuario_inclusao) values (";
					$sql .= " $num_ind, ";
					$sql .= " '" . decodificar($fonte) . "', ";
					$sql .= " 'A', ";
					$sql .= " 2, "; // indicador com carga de valores numéricos.
					$sql .= "'$dataini', ";
					$sql .= "'$datafim', ";
					$sql .= "'$datainimostra', ";
					$sql .= "'$datafimmostra', ";
					$sql .= "'ano', "; // indicador sem meta será sempre com carga anual ou anualizada
					$sql .= $_SESSION["fnum_func"] . ") ";
				}
				if (pg_query( $sql)){
					$msg = "Alteração do Indicador realizada com sucesso!";
				} else {
					$msg = "Erro ao alterar o Indicador";
				}
			}
		} else {
			$msg = "Erro ao alterar o Indicador";
		}		
		
		return $msg;
	}


	/**
	* Existe Indicador
	* @param int $nivel
	* @param int $codigo
	* @param int $tipo
	* @param string $where
	* @access	public
	*/
	function existeindicador($nivel, $codigo, $tipo, $where){

		/*
		// $nivel eixo=1, objetivogeral=2, diretriz=3, objetivo especifico=4, meta=5
		// $tipo banco=1, manual=2
		// $existe não=1, sim=2
		$existe = 1;
		if ($nivel == 1){
			$sql = "select num_indicador, tabelaperiodoindicador from monitorasus.indicadores_manuais ";
			$sql .= " where $where and num_metas_geren in ";
			$sql .= "  (select num_metas_geren from metasgerenciais ";
			$sql .= "  where $where and num_metas_gestao in ";
			$sql .= "    (select num_metas_gestao from metasgestao ";
			$sql .= "    where $where and num_diretriz in ";
			$sql .= "      (select num_diretriz from diretriz ";
			$sql .= "      where $where and num_objetivo in ";
			$sql .= "        (select num_objetivo from objetivo ";
			$sql .= "        where $where and num_eixo = $codigo) ";
			$sql .= "      ) ";
			$sql .= "    ) ";
			$sql .= "  ) ";
			$sql .= " and tabelaperiodoindicador is not null ";
			$resultado = pg_query( $sql);
	        while ($rs = pg_fetch_array($resultado)){
				$sql2 = "select count(*) as total from indicador_" . $rs["tabelaperiodoindicador"];
				$sql2 .= " where num_indicador = " . $rs["num_indicador"];
				$resultado2 = pg_query( $sql2);
				$total = 0;
				$total = pg_fetch_result($resultado2,0,"total");
				if ($total > 0){
					$existe = 2;
					break 1;
				}
				
			}
		}
		if ($nivel == 2){
			$sql = "select num_indicador, tabelaperiodoindicador from indicador ";
			$sql .= " where $where and num_metas_geren in ";
			$sql .= "  (select num_metas_geren from metasgerenciais ";
			$sql .= "  where $where and num_metas_gestao in ";
			$sql .= "    (select num_metas_gestao from metasgestao ";
			$sql .= "    where $where and num_diretriz in ";
			$sql .= "      (select num_diretriz from diretriz ";
			$sql .= "      where $where and num_objetivo = $codigo) ";
			$sql .= "    ) ";
			$sql .= "  ) ";
			$sql .= " and tabelaperiodoindicador is not null ";
	        $resultado = pg_query( $sql);
	        while ($rs = pg_fetch_array($resultado)){
				$sql2 = "select count(*) as total from indicador_" . $rs["tabelaperiodoindicador"];
				$sql2 .= " where num_indicador = " . $rs["num_indicador"];
				$resultado2 = pg_query( $sql2);
				$total = 0;
				$total = pg_fetch_result($resultado2,0,"total");
				if ($total > 0){
					$existe = 2;
					break 1;
				}
			}
		}
		if ($nivel == 3){
			$sql = "select num_indicador, tabelaperiodoindicador from indicador ";
			$sql .= " where $where and num_metas_geren in ";
			$sql .= "  (select num_metas_geren from metasgerenciais ";
			$sql .= "  where $where and num_metas_gestao in ";
			$sql .= "    (select num_metas_gestao from metasgestao ";
			$sql .= "    where $where and num_diretriz = $codigo ";
			$sql .= "    ) ";
			$sql .= "  ) ";
			$sql .= " and tabelaperiodoindicador is not null ";
	        $resultado = pg_query( $sql);
	        while ($rs = pg_fetch_array($resultado)){
				$sql2 = "select count(*) as total from indicador_" . $rs["tabelaperiodoindicador"];
				$sql2 .= " where num_indicador = " . $rs["num_indicador"];
				$resultado2 = pg_query( $sql2);
				$total = 0;
				$total = pg_fetch_result($resultado2,0,"total");
				if ($total > 0){
					$existe = 2;
					break 1;
				}
			}
		}
		if ($nivel == 4){
			$sql = "select num_indicador, tabelaperiodoindicador from indicador ";
			$sql .= " where $where and num_metas_geren in ";
			$sql .= "  (select num_metas_geren from metasgerenciais ";
			$sql .= "  where $where and num_metas_gestao = $codigo ";
			$sql .= "  ) ";
			$sql .= " and tabelaperiodoindicador is not null ";
	        $resultado = pg_query( $sql);
	        while ($rs = pg_fetch_array($resultado)){
				$sql2 = "select count(*) as total from indicador_" . $rs["tabelaperiodoindicador"];
				$sql2 .= " where num_indicador = " . $rs["num_indicador"];
				$resultado2 = pg_query( $sql2);
				$total = 0;
				$total = pg_fetch_result($resultado2,0,"total");
				if ($total > 0){
					$existe = 2;
					break 1;
				}
			}
		}
		if ($nivel == 5){
			$sql = "select num_indicador, tabelaperiodoindicador from indicador ";
			$sql .= " where $where and num_metas_geren = $codigo ";
			$sql .= " and tabelaperiodoindicador is not null ";
	        $resultado = pg_query( $sql);
	        while ($rs = pg_fetch_array($resultado)){
				$sql2 = "select count(*) as total from indicador_" . $rs["tabelaperiodoindicador"];
				$sql2 .= " where num_indicador = " . $rs["num_indicador"];
				$resultado2 = pg_query( $sql2);
				$total = 0;
				$total = pg_fetch_result($resultado2,0,"total");
				if ($total > 0){
					$existe = 2;
					break 1;
				}
			}
		}

		if ($existe == 2){
			echo "<img src=\"./telas/images/blue_6x7.gif\" border=\"0\">";
		}
		*/
	}

	/**
	* coletarperiodo (retirar mes, ano, bimestre, etc de uma data especifica
	* @param string $tipo
	* @param string $data
	* @return int $valor
	* @access	public
	*/
	function coletarperiodo($tipo, $data){
		if ($tipo == "mes"){
			$temp = explode("/",$data);
			$valor = $temp[1]*1;
		}
		if ($tipo == "ano"){
			$temp = explode("/",$data);
			$valor = $temp[2]*1;
		}
		if ($tipo == "bimestre"){
			$temp = explode("/",$data);
			if ($temp[1]*1<=2){
				$valor = 1;
			} elseif (($temp[1]*1>2) && ($temp[1]*1<=4)){
				$valor = 2;
			} elseif (($temp[1]*1>4) && ($temp[1]*1<=6)){
				$valor = 3;
			} elseif (($temp[1]*1>6) && ($temp[1]*1<=8)){
				$valor = 4;
			} elseif (($temp[1]*1>8) && ($temp[1]*1<=10)){
				$valor = 5;
			} else {
				$valor = 6;
			}
		}
		if ($tipo == "trimestre"){
			$temp = explode("/",$data);
			if ($temp[1]*1<=3){
				$valor = 1;
			} elseif (($temp[1]*1>3) && ($temp[1]*1<=6)){
				$valor = 2;
			} elseif (($temp[1]*1>6) && ($temp[1]*1<=9)){
				$valor = 3;
			} else {
				$valor = 4;
			}
		}
		if ($tipo == "quadrimestre"){
			$temp = explode("/",$data);
			if ($temp[1]*1<=4){
				$valor = 1;
			} elseif (($temp[1]*1>4) && ($temp[1]*1<=8)){
				$valor = 2;
			} else {
				$valor = 3;
			}
		}
		if ($tipo == "semestre"){
			$temp = explode("/",$data);
			if ($temp[1]*1<=6){
				$valor = 1;
			} else {
				$valor = 2;
			}
		}
		return $valor;
	}


	/**
	* Estruturar Indicador
	* @param int $num_eixo
	* @param int $num_objetivogeral 
	* @param int $num_diretriz
	* @param int $num_objetivoespecifico
	* @param int $num_meta
	* @param int $num_ind
	* @param string $where
	* @param int $exercicio
	* @access	public
	*/
	function estruturarindicador($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_ind, $where, $conexao){
		$categoriaindicador = $_POST["CategoriaIndicador"];
		$descritivosim = $_POST["Descritivosim"];
		$descritivonao = $_POST["Descritivonao"];
		$dataini = $_POST["DataIni"];
		$datafim = $_POST["DataFim"];
		$datainimostra = $_POST["DataIniMostra"];
		$datafimmostra = $_POST["DataFimMostra"]; 
		$nivel_central = $_POST["nivel_central"];
		$nivel_distrital = $_POST["nivel_distrital"];
		$nivel_local = $_POST["nivel_local"];
		

		// CategoriaIndicador (tipo de informação) 1=>boolean(com texto indicativo para sim e não) 2=>valor   padrão 2
		// Descritivosim padrão "Valor :"
		// TipoOrigem (de onde vem a informação) 1=>manual 2=>banco de dados   padrão 1
		// verificando se é indicador manual, para estruturar dados do mesmo.
		if ($num_eixo != "")
		{
			$sql = "update monitorasus.indicadores_manuais set ";
			$sql .= "dataini='$dataini', ";
			$sql .= "datafim='$datafim', ";
			$sql .= "datainimostra='$datainimostra', ";
			$sql .= "datafimmostra='$datafimmostra', ";
			$sql .= "categoriaindicador=$categoriaindicador, ";
			$sql .= "descritivosim='$descritivosim', ";
			$sql .= "descritivonao='$descritivonao', ";
			$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
			if (pg_query( $sql)){
				$msg = "Estruturação do Indicador realizada com sucesso!";
				// estruturando vidualização por nível.
				if ($nivel_central != "")
				{
					$sql = "update monitorasus.indicadores set ";
					$sql .= "nivel_central = '$nivel_central', ";
					$sql .= "nivel_distrital = '$nivel_distrital', ";
					$sql .= "nivel_local = '$nivel_local', ";
					$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
					pg_query($sql);	
				}
			} else {
				$msg = "Erro ao estruturar o Indicador";
			}
		} else {
			// no caso de indicador de banco de dados, estruturar somente os nível que podem visualizar.
			$sql = "update monitorasus.indicadores set ";
			$sql .= "nivel_central = '$nivel_central', ";
			$sql .= "nivel_distrital = '$nivel_distrital', ";
			$sql .= "nivel_local = '$nivel_local', ";
			$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
			if (pg_query($sql))
			{
				$sql = "update monitorasus.indicadores_manuais set ";
				$sql .= "categoriaindicador=$categoriaindicador, ";
				$sql .= "descritivosim='$descritivosim', ";
				$sql .= "descritivonao='$descritivonao', ";
				$sql .= " id_usuario_alteracao=" . $_SESSION["fnum_func"] . ", data_alteracao=now() where num_indicador=$num_ind ";
				pg_query($sql);
				
				$msg = "Estruturação do Indicador realizada com sucesso!";
			} else {
				$msg = "Erro ao estruturar o Indicador";
			}
		}
		return $msg;
	}


	/**
	* Manutenção Indicador
	* @param int $num_eixo
	* @param int $num_objetivogeral 
	* @param int $num_diretriz
	* @param int $num_objetivoespecifico
	* @param int $num_meta
	* @param int $num_ind
	* @param string $where
	* @param int $exercicio
	* @access	public
	*/
	function manutencaoindicador($num_eixo, $num_objetivo, $num_diretriz, $num_objetivoespecifico, $num_meta, $num_ind, $where, $conexao){
		$sql = "select ";
		$sql .= " case when i.tipoorigem = 1 then cast(substring(cast(im.notatecnica as text),1,2500) as text) else '' end as textonota1, ";		
		$sql .= " case when i.tipoorigem = 1 then cast(substring(cast(im.notatecnica as text),2501,2500) as text) else '' end as textonota2, ";		
		$sql .= " case when i.tipoorigem = 1 then cast(substring(cast(im.notatecnica as text),5001,2500) as text) else '' end as textonota3, ";		
		$sql .= " case when i.tipoorigem = 1 then cast(substring(cast(im.notatecnica as text),7501,2500) as text) else '' end as textonota4, ";		
		$sql .= " case when i.tipoorigem = 1 then cast(substring(cast(im.notatecnica as text),10001,2500) as text) else '' end as textonota5, ";		
		$sql .= " case when i.tipoorigem = 1 then im.notatecnica else NULL end as notatecnica, ";
		$sql .= " case when i.tipoorigem = 1 then im.tabelaperiodoindicador else NULL end as tabelaperiodoindicador, ";
		$sql .= " case when i.tipoorigem = 1 then im.categoriaindicador else NULL end as categoriaindicador, ";
		$sql .= " case when i.tipoorigem = 1 then im.descritivosim else '...' end as descritivosim, ";
		$sql .= " case when i.tipoorigem = 1 then im.descritivonao else '...' end as descritivonao, ";
		$sql .= " case when i.tipoorigem = 1 then im.dataini else '...' end as dataini, ";
		$sql .= " case when i.tipoorigem = 1 then im.datafim else '...' end as datafim, ";
		$sql .= " case when i.tipoorigem = 1 then im.datainimostra else '...' end as datainimostra, ";
		$sql .= " case when i.tipoorigem = 1 then im.datafimmostra else '...' end as datafimmostra, ";
		$sql .= " case when i.tipoorigem = 1 then 'manual' else 'banco de dados' end as fontedb, ";
		$sql .= " case when i.tipoorigem = 1 then im.fonte else 'banco de dados' end as fonte, ";
		$sql .= " i.num_indicador, ";
		$sql .= " i.des_indicador ";
		$sql .= " from monitorasus.indicadores i ";
		$sql .= " left join monitorasus.indicadores_manuais im on (i.num_indicador = im.num_indicador) ";		
		$sql .= " where i.num_indicador = $num_ind ";		
		$resultado = pg_query( $sql);
		$des_indicador = codificar(pg_fetch_result($resultado,0,"des_indicador"));
		$dataini = pg_fetch_result($resultado,0,"dataini");
		$datafim = pg_fetch_result($resultado,0,"datafim");
		$datainimostra = pg_fetch_result($resultado,0,"datainimostra");
		$datafimmostra = pg_fetch_result($resultado,0,"datafimmostra");
		$fonte = codificar(pg_fetch_result($resultado,0,"fonte"));
		$tabelaperiodoindicador = pg_fetch_result($resultado,0,"tabelaperiodoindicador");
		$categoriaindicador = pg_fetch_result($resultado,0,"categoriaindicador");
		$descritivosim = pg_fetch_result($resultado,0,"descritivosim");
		$descritivonao = pg_fetch_result($resultado,0,"descritivonao");
		echo "<br>";		
		$anoini = "";
		$anofim = "";
		$perini = "";
		$perfim = "";
		$numdata = explode("/", $dataini);
		$anoini = $numdata[2];
		$numdata = explode("/", $datafim);
		$anofim = $numdata[2];
		if ($tabelaperiodoindicador == "ano"){
			$perini = 1;
			$perfim = 1;
		} else {
			$perini = $this->coletarperiodo($tabelaperiodoindicador, $dataini);
			$perfim = $this->coletarperiodo($tabelaperiodoindicador, $datafim);
		}

		// zerando informações
		for ($i = $anoini; $i <= $anofim; $i++){
			if ($anoini == $i){
				$perinicial = $perini;
			} else {
				$perinicial = 1;
			}
			if ($anofim == $i){
				$perfinal = $perfim;
			} else {
				if ($tabelaperiodoindicador == "mes"){
					$perfinal = 12;
				} elseif ($tabelaperiodoindicador == "bimestre"){
					$perfinal = 6;
				} elseif ($tabelaperiodoindicador == "trimestre"){
					$perfinal = 4;
				} elseif ($tabelaperiodoindicador == "quadrimestre"){
					$perfinal = 3;
				} elseif ($tabelaperiodoindicador == "semestre"){
					$perfinal = 2;
				} else {
					$perfinal = 1;
				}
			}
			for ($z=$perinicial; $z<=$perfinal; $z++){
				$dados[$i][$z] = "";
				$dadosesperado[$i][$z] = "";
			}
		}
						
		// limpando informações existentes no banco
		$sql = "delete from " . $_SESSION["banco"] . ".indicador_$tabelaperiodoindicador where num_indicador = $num_ind";
		pg_query( $sql);


		// gravando informações no banco
		for ($i = $anoini; $i <= $anofim; $i++){
			if ($anoini == $i){
				$perinicial = $perini;
			} else {
				$perinicial = 1;
			}
			if ($anofim == $i){
				$perfinal = $perfim;
			} else {
				if ($tabelaperiodoindicador == "mes"){
					$perfinal = 12;
				} elseif ($tabelaperiodoindicador == "bimestre"){
					$perfinal = 6;
				} elseif ($tabelaperiodoindicador == "trimestre"){
					$perfinal = 4;
				} elseif ($tabelaperiodoindicador == "quadrimestre"){
					$perfinal = 3;
				} elseif ($tabelaperiodoindicador == "semestre"){
					$perfinal = 2;
				} else {
					$perfinal = 1;
				}
			}
			for ($z=$perinicial; $z<=$perfinal; $z++){
				if (strlen($z) == 1){
					$textoz = "0" . $z;
				} else {
					$textoz = $z;
				}
				$sql = "insert into " . $_SESSION["banco"] . ".indicador_$tabelaperiodoindicador ";
					$sql .= "(num_indicador, ano, periodo, valor, valor_esperado) ";
				$sql .= " values ($num_ind, $i, $z, ";
				if (trim($_POST["v$textoz$i"]) != ""){
					$sql .= str_replace(",",".",$_POST["v$textoz$i"]);
				} else {
					$sql .= "NULL";
				}
				$sql .= ", ";
				if (trim($_POST["ve$textoz$i"]) != ""){
					$sql .= str_replace(",",".",$_POST["ve$textoz$i"]);
				} else {
					$sql .= "NULL";
				}
				$sql .= ")";
				pg_query( $sql);
			}
		}
		$msg = "Manutenção do Histórico do Indicador Realizada!";
		return $msg;
	}

	/*
	 * inserir instrumento
	 */
	function adicionainstrumento($num_indicador, $num_grupo)
	{
		$sql = "insert into monitorasus.indicadores_agrupamentos (num_indicador, num_grupo) values($num_indicador, $num_grupo)";
		pg_query( $sql);
	}

	/*
	 * inserir destaque
	 */
	function adicionadestaque($num_indicador, $numdestaque)
	{
		$sql = "update monitorasus.parametros set indicador$numdestaque = $num_indicador";
		pg_query( $sql);
	}
	
	
	/*
	 * remove instrumento
	 */
	function removeinstrumento($num_indicador, $num_grupo)
	{
		$sql = "delete from monitorasus.indicadores_agrupamentos where num_indicador = $num_indicador and num_grupo = $num_grupo";
		pg_query( $sql);
	}
	
	
}


?>